package com.huangfuyi.datamodel.service;

import com.huangfuyi.datamodel.entity.datasource.EDataSourceDetailEntity;
import com.huangfuyi.datamodel.entity.datasource.EDataSourceConfExample;
import com.huangfuyi.datamodel.entity.datasource.EDataSourceNodeEntity;
import com.huangfuyi.datamodel.entity.datasource.EDataSourceTypeInfo;
import com.huangfuyi.datasource.enums.EDataSourceType;

import java.util.List;

/**
 * 数据源服务
 *
 * */
public interface EDataSourceService {

    // 新增数据源树节点
    int addDataSourceTreeNode(EDataSourceNodeEntity nodeInfo);

    // 删除数据源树节点
    int deleteDataSourceTreeNode(String nodeId);

    // 修改数据源树节点信息
    int updateDataSourceTreeNode(EDataSourceNodeEntity nodeInfo);

    // 查询子节点列表，顶层节点 pid = null
    List<EDataSourceNodeEntity> queryDataSourceTree(String id);

    // 新增数据源
    int addDataSource(EDataSourceDetailEntity dataSourceDetail);

    // 删除数据源
    int deleteDataSource(String dataSourceId);

    // 修改数据源
    int updateDataSource(EDataSourceDetailEntity dataSource);

    // 查询数据源列表
    List<EDataSourceDetailEntity> queryDataSourceList(EDataSourceDetailEntity condition, int pageNum, int pageSize);

    // 查询数据源详细配置
    EDataSourceDetailEntity queryDataSourceDetail(String id);

    // 查询数据源类型列表
    List<EDataSourceTypeInfo> queryDataSourceTypeList();

    // 查询数据源配置字段清单
    List<EDataSourceConfExample> queryDataSourceConfExample(EDataSourceType type);

}
